home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / TCP_IP / TNOS230B / FEATURES.110 < prev    next >
Text File  |  1994-11-19  |  40KB  |  878 lines

  1. Welcome to TNOS release 1.10b
  2.  
  3. Please remember that this is beta code. You probably will find bugs, just
  4. make sure to report them. Also, DO NOT give out any copies of beta-test
  5. code to ANYONE without the authors permission. Doing so will cause us BOTH
  6. a lot of grief (mine from them, yours from ME).
  7.  
  8. One of the new things here is the VIEW command, which you are in now.
  9. This table shows how to move about in the VIEWER. Try these keys out, now!
  10.  
  11.      keys         actions
  12.      ===========  ==============================
  13.      h,H,<        move to the top of file (HOME)
  14.      e,>          move to the end of file
  15.      ^D           move down the file 1/2 screen
  16.      ^U           move up the file 1/2 screen
  17.      d,^N,j       move down the file one line
  18.      D,^V         move down the file one page
  19.      u,^P,k       move up the file one line
  20.      U,v          move up the file one page
  21.      ^C,q,Q,ESC   exit VIEWER
  22.      other keys   redisplay screen
  23.  
  24. This is the new features file, named 'features.new'. If you rename this
  25. file (or move it to another directory, you will not be prompted for viewing
  26. this on each startup.
  27.  
  28. *** NOTE: CDROMs can be used in all areas of TNOS the same as any other
  29.     disk with one exception. DOS (or the CDROM drivers) seems to return a
  30.     'file or directory not found' error when checking for the existence of
  31.     the root directory of a CDROM. When trying to 'cd' to the root directory
  32.     of a CDROM you will encounter this error. You can read files from the root
  33.     and you can change to a directory on the CDROM, you just can't 'cd' to
  34.     the root.
  35.  
  36.  
  37. NEW TO 1.1.0......
  38.  
  39. - Changed the BBS SID to properly reflect the version number
  40.  
  41. - Added an FTPMAXCLIENTS command to limit number of active clients
  42.  
  43. - Fixed the BBS FWDing bug
  44.  
  45. - Fixed the groupcommand() function to create the groups file if it
  46.   doesn't already exist
  47.  
  48. - Fixed problem with Conference Bridge 'smiley' command not closing the
  49.   'smiley' file.
  50.  
  51. - Added some pwait() calls to try to make the smtp server a little more
  52.   CPU-time-friendly during expansion of mailing list messages
  53.  
  54. - Made many minor changes to the Conference Bridge to make it more compatible
  55.   with the PingPong conversd code. While this is GOOD to PP code, it CAN be
  56.   bad to TNOS v1.0.0 code. If you are linked to other TNOS v1.0.0 converse
  57.   servers, you MAY experience unknown problems with the linked sessions.
  58.   I strongly suggest that all TNOS systems using the Conference Bridge
  59.   upgrade to v1.1.0.
  60.  
  61. - Fixed a few minor Conference Bridge bugs relating to groups (thanks
  62.   Ron/N8FOW)
  63.  
  64. - Made changes to the Quote-of-the-Day server's data file, to make it easier to
  65.   manage. If you are using the Quote server with v1.0.0, you must make minor
  66.   changes to it for v1.1.0. The format now is:
  67.  
  68.   [d] %file
  69.   .......
  70.   .......
  71.   [d+1]
  72.  
  73.   where 'd' is the day of the month ([1], [2], etc.). The "%file" is optional.
  74.   If you use it, the data for the quote is read INSTEAD from "file". The
  75.   entire "file" (as much as 4K) is returned as the quote. If "file" is NOT
  76.   included on the "[d]" line, all following lines (until the next "[d]" line)
  77.   is returned as the quote.
  78.  
  79. - Added change to alloc.c (from Andrew Benham) to handle an obscure bug if
  80.   "mem minheap" is set to > 32767.
  81.  
  82. - Added code to allow receiving ip type=4 for encap interfaces.
  83.  
  84. - Added a "ip encapnew [on | off]" command that allows transmission on an
  85.   encap interface using ip type=4.
  86.  
  87. - Added a "ax25 rosecall <call>" command to set an entry Rose switch callsign.
  88.   Also added syntax to the connect and split commands to allow rose connects
  89.   like "c 2m ko4ks @ 813105". This has also been added to the BBS connect
  90.   command.
  91.  
  92. - Added FBB-style forwarding. This includes the "5 at a time, back & forth"
  93.   style of protocol, but does NOT add FBB message compression (at least, not
  94.   yet). Thanks Jack!
  95.  
  96. - Added a bunch of code and code changes to allow TNOS to be compiled under
  97.   Linux. Several long standing bugs were found due to the GNU compiler.
  98.  
  99. - Revamped the code in version.c (again) to make it easier to maintain.
  100.  
  101. - Fixed a few assorted bugs in expire.c dealing with bid and wpages
  102.   processing. Also made a sysop WPAGES command addition force a WPAGES KICK
  103.   for the users (WPAGES) file, but not the BBS (WPAGEBBS) file.
  104.  
  105. - Then later reverted, temporarily, the bid and wpages lookup/expire code
  106.   to non-sorted mode while I look into a better way to handle LARGE files.
  107.   Even though only minimal info is kept in memory while the file is being
  108.   sorted, it can take up most/all of available memory, which CAN cause
  109.   lockups if other "stuff" is going on at the same time. The sort code will
  110.   be re-addressed in v1.11.
  111.  
  112. - Cleaned up the config.h and makefiles for readability.
  113.  
  114. - Added a DELEGATION SERVER. The idea is this, a user who is going to be
  115.   away for a period of time can set the system up to selectively (1) hold
  116.   their mail, (2) forward their mail to another email address, (3) notify
  117.   the sender that they are away (with an optional personal message), and
  118.   (4) set the beginning and ending dates for forwarding DELEGATION to be
  119.   in effect. Neat stuff!
  120.  
  121. - Added a "CONVERS ALIAS <call>" command, to allow 2 diffferent calls/aliases
  122.   to the Conference Bridge.
  123.  
  124. - Added to the Mailbox "WP user @BBS" command the ability to set the WPAGEBBS
  125.   heirarchial address also, by giving a complete heir address for "BBS".
  126.  
  127. - Was totally blown away when I realized that there was not a SINGLE pwait()
  128.   call in all of the Conference Bridge code. What this means is that if the
  129.   converse code had more to do, it did it, and didn't give the other processes
  130.   any CPU time, including the process that would deliver the data!
  131.  
  132.   A few have been added in the appropriate places and performance of the
  133.   entire system has improved. Previously, a system would sometimes MYSTERIOUSLY
  134.   become unstable, with plenty of memory, if the Conference Bridge became
  135.   highly active. The mystery has been solved!
  136.  
  137. - Added a "convers console callsign" command to provide more flexibility. It
  138.   is initialized to the first section of the hostname. This is what the user
  139.   from the console gets identified with if he issues a "conference" call.
  140.  
  141. - Changed defaults to "conv umaxq" to 3K and "conv hmaxq" to 6K.
  142.  
  143. - Fixed a long standing bug in finger (actually any command calling the
  144.   pathname function) when the default location of a file begins with "./" or
  145.   "../", as they ALL do in the Linux version.
  146.  
  147. - Added the "forward fbbstyle" output to the "forward status" command.
  148.  
  149. - Added code to allow a remote sysop to view the output of the "start ?"
  150.   command.
  151.  
  152. - Changed the home bbs setting routine to use the AX MYCALL as default,
  153.   rather than the HOSTNAME.
  154.  
  155. - Added a "tcp connections" command that is basically the same thing as the
  156.   "tcp status" command, except that the TCP MIB values (those variables and
  157.   numbers at the top of the status command output) are not displayed. This
  158.   is good for quick peeks at the connections. The syntax is the same, only
  159.   the name was changed to protect the innocent ;-) The "tcp status" command
  160.   remains intact.
  161.  
  162. - Added to the Information Server a "~sp num" command, which seeks the current
  163.   data file to the position saved in integer variable 'num'. Also changed
  164.   the integer variables from 16-bit values to 32-bit values for this reason.
  165.   And added an additional text control sequence of "~p", which is replaced
  166.   with the offset position of the current data file.
  167.  
  168.   For example,
  169.  
  170.            ~i2=~p               (save current position)
  171.            .......              (do something)
  172.            ~sp 2                (later, return to beginning position)
  173.   
  174.  
  175.   Also now the following attributes of a parent script get inherited by
  176.   a child script when using the "~$" command:
  177.          user I/O socket     (this was previously the only inherited attribute)
  178.          whether it was an IP connect or AX25
  179.          call sign of user, if AX25
  180.          all integer variables, and string variables
  181.          all open connection sockets (they should NOT be closed by the child)
  182.                                      (you WERE warned!)
  183.          the current data file is NOT inherited, allowing the child to
  184.              have a separate data file, without closing the parent's file
  185.  
  186. - Additions to Information Server:
  187.     A new text control sequence "~l" which is replaced with the elapsed
  188.         time of the current script.
  189.     A new feature to the "~$" command to allow executing a child script
  190.         in the background. To do this, make the command
  191.         "~$$ scriptname".
  192.     A child script inherits all 10 of the string variables (if they are
  193.         defined) from the parent script, but the first five (0-4)
  194.         remain local (private) to the child, while the last five (5-9)
  195.         are shared with the parent, allowing global string variables.
  196.         All 10 integer variables are inherited, and the last 5 (5-9)
  197.         are also shared with the parent, allowing global integer
  198.         variables.
  199.  
  200. - Added a "mbox maxtimer <timeinseconds>" command, to permit the BBS to
  201.   gracefully "bump" off a user that is on for an excessive time. This is
  202.   added to allow a maximum BBS forwarding session length, but can also be
  203.   used with "human" users that monopolize the host's resources.
  204.  
  205. - Added a "server" function that I call ProxyMail. It goes like this:
  206.   At a specified time (probably middle of the evening), ProxyMail kick off
  207.   and for it's subscribed users is obtains listings of new messages that
  208.   have been received in the last day. The setup contains the desired areas
  209.   that each user wants. These listings are sent to the user in a single
  210.   mail message. If the user has a TNC on, this can be received and waiting
  211.   for him/her when they awake.
  212.  
  213.   This cuts down on bandwidth for listings at peak times.
  214.  
  215.   ProxyMail has been implimented as a Script, partly as an example, mostly
  216.   because it is a simple task that can be handled WELL in a script, and it
  217.   allows easy customization.
  218.  
  219.   Other parts to the ProxyMail Trilogy (coming soon to a theater near you)
  220.   are the parts to allow the user to set this information without SYSOP
  221.   intervention (probably a script, also) and a part to allow a user to
  222.   send a single message to the BBS giving areaname-messagenumber combinations
  223.   which will generate a SINGLE message in reply, for easy "fetching".
  224.  
  225. - Added a BBS "cmd" command, which allows SYSOP-customizable commands, via
  226.   Scripts. They are script files, kept in the "spool/cmds" directory, that
  227.   have an extension of ".cmd". There is a user-displayable help/summary
  228.   file for this named "spool/help/usercmds.hlp", which the user can get
  229.   with just "cmd".
  230.  
  231.   The syntax is "CMD cmdname arg0 arg1 arg2 ... arg9". All parameters are
  232.   optional. If any arguments are given, they are passed to the script as
  233.   string variables ~0-~9, and the number of user arguments passed to the
  234.   script can be found in integer register ~i0.
  235.  
  236. - Fixed a newly discovered, long standing bug with the Information Server
  237.   script language in properly handling scripted telnet connections with the
  238.   "~$" command. The telnet negotiations were not being handled, causing
  239.   a inability to connect to telnet port 23 (the BBS of a TNOS system),
  240.   as well as some other ports. This is now fixed
  241.  
  242. - The third part of the ProxyMail trilogy is complete (yes I've skipped
  243.   number 2) and it also is handled in a script (mainly). In fact, it is the
  244.   SAME script used in the first part. There was an additional smtp server
  245.   added for mail to "PROXY" (or rewritten to that name). This server copies
  246.   the data to a temp file, and spawns off "spool/cmds/proxy.cmd". A PROXY
  247.   request can contain any BBS commands that the user can normally do from
  248.   the command line.
  249.  
  250. - Added a new function to the game named mbscripthook(). This allows a
  251.   script file to be called (if it exists) at certain times in the BBS.
  252.   These scripts must be located in the spool/cmds directory. They each
  253.   are passed in one parameter, though in some cases the data given isn't
  254.   much help. In all hook scripts, the callsign (available with "~c") is
  255.   valid. Initially, I have only 4 hooks in the BBS code:
  256.  
  257.     dosend.sys    called in the dosend() function if this is NOT
  258.             a BBS. This is called early in the process, but
  259.             after the rewrite has been run. The parameter in
  260.             "~0" is the originalname, a dash, and the rewritten
  261.             name. For example, "sp ko4ks@ko4ks.ampr.org" on
  262.             my system sends "ko4ks@ko4ks.ampr.org - ko4ks".
  263.  
  264.     newuser.sys    called when a non-BBS user logs in for the first time,
  265.             after sending the "spool/newuser" file. The "~0"
  266.             parameter is "newuser callsign".
  267.  
  268.     login.sys    called right before first prompt is sent, if this is
  269.             a non-BBS user. The "~0" parameter is "login callsign"
  270.  
  271.     logout.sys    called at the beginning of the logout process, after
  272.             the user selects the "bye", "exit", or "quit" command,
  273.             if this is a non-BBS user. The "~0" parameter is
  274.             "logout callsign"
  275.  
  276. - Fixed a bug in beta 13 that crept in between b8 and b12 with rlogin. The
  277.   problems was caused by checking in the mbxrecvline() function for the
  278.   link type being TELNET_LINK, and only then analyzing for telnet
  279.   negotiations in the data stream. This protection is good for keeping
  280.   binary color files from possibly being interpreted as telnet sequences.
  281.   The problem was, I should have been checking for RLOGIN_LINK, as well.
  282.  
  283. - Added a fix to what seemingly WOULD be a common problem with the DELEGATION
  284.   server. The "new" DELEGATION user seems to want to TEST that it is doing
  285.   its job by sending a message to him/her self. Well, IF he has the DELEGATE
  286.   option on of notifying the sender of the absence, then we now have an
  287.   INFINITE LOOP. Think about it, ME sends a message, BBS now notifies ME,
  288.   which in turn notifies ME, etc....
  289.  
  290.   Now, if a user has DELEGATION on and tries to send a message to him/her
  291.   self, the dosend(() function says, "nope!", tells the user why, and aborts
  292.   the message. It is also logged in the log file.
  293.  
  294. - Fixed the BBS "operator" command, which DID do a disconnect from the BBS
  295.   if the user used the escape key to terminate the chat session on his end.
  296.   Now, he is PROPERLY returned to the BBS, no matter who terminated the
  297.   session.
  298.  
  299. - Fixed a bug with dosend.sys and the SR command.
  300.  
  301. - Fixed a long standing bug with the HOSTNAME command. It now will properly
  302.   remove a trailing "." on the hostname.
  303.  
  304. - Added a new script command, "~ap to from", which appends a string variable
  305.   (from) to the end of another existing variable (to). For example, to make
  306.   a filename of the form "/nos/scripts/~9.cnf", with string variable 9 as a
  307.   basename, use something like:
  308.  
  309.     ~a 1 /nos/scripts/        # directory name in 1
  310.     ~a 2 .cnf            # file extension in 2
  311.     ~ap 1 9                # add the basename to 1
  312.     ~ap 1 2                # and add the extension to 1
  313.  
  314.   This is necessary since the ~f and ~o commands either take a hardcoded
  315.   string, or a single variable (i.e., "~o ~1", in this example).
  316.  
  317. - A few misc cosmetic fixes.
  318.  
  319. - Linux fixes:
  320.     * fixed a bug in the directory code that DIDN'T add a <CR> before
  321.       the disk-space line, if there were an odd number of directory
  322.       entries.
  323.     * fixed a bug in the finger daemon found if fingering "@host".
  324.       The filespec being used was a DOS one, "*." for finding all
  325.       filenames without an extension, which in Linux finds all files
  326.       ending in ".".
  327.  
  328. - Added a "nlist" command to the ftp client, in addition to the "nlst"
  329.   command, for those who are used to the other name.
  330.  
  331. - Added a line to the FTP banner, which tells how many FTP users are
  332.   currently on the system.
  333.  
  334. - Fixed a quirk in dosend() which caused a DNS lookup if sending to a user
  335.   without a "@host" or "@BBS" in the address.
  336.  
  337. - Added code in the Conference Bridge to flush a socket if 2400 bytes are
  338.   queued and it has not been flushed. A JNOS user earlier reported that
  339.   data loss occurred at 2560 bytes if flushing had not occurred. Whether
  340.   or not this has been a problem in TNOS, I don't know, but it was easy
  341.   enough to put in the protection.
  342.  
  343. - Reviving the sorted searches of history, wpages, and wpagebbs files. These
  344.   were "tabled" earlier, since sorting a large file stole all of memory. Now
  345.   it used my Virtual Memory System, which has been used for storing screen
  346.   memory. The VMS code used XMS (if available) or disk. While it is not
  347.   very easy to replace normal code with accesses to the VMS, this localized
  348.   usage was easy to convert. Now when sorting, you either use XMS or disk, so
  349.   if there is no available XMS, you will have an additional file open during
  350.   expiration of bids and wpages. ONLY ONE file can be sorted at a time. This
  351.   is paced by the VMS code, making any SECOND process simply wait until the
  352.   first is complete.
  353.  
  354. - Added a new form of memory allocation, pooled memory. There has long been
  355.   a problem with memory fragmentation, caused by several tables (mbox user
  356.   list, ax25 heard list, ip heard list, etc.) which are linked lists that
  357.   are NEVER freed. Under low usage conditions these are not a problem, but
  358.   when the system is stressed and a new entry needs to be created, it is
  359.   created "high" in memory. Then when the load is reduced, there is no
  360.   way to move this SMALL piece of memory. The memory will remain fragmented.
  361.  
  362.   And so enters POOLED memory. The idea is this, instead of allocating
  363.   dozens of little allocations, we will allocate a smaller number of LARGER
  364.   allocations, in pools. Initially all pools will be allocated in multiples
  365.   of 50, though this might become configurable at a later date. While this
  366.   may sound large, the size of these individual components are about 20-30
  367.   bytes each, making a pool of 50 only 1K to 1.5K. There is no
  368.   penalty, for example, for ax25 heard if you do not set up "ax25 hport"s,
  369.   since the pool memory is not allocated until the first request comes in,
  370.   or until the current pool is exhausted.
  371.  
  372.   While this is not perfect, it SHOULD reduce memory fragmentation
  373.   dramatically for these routines for most systems, without noticable
  374.   overhead.
  375.  
  376. - Fixed 2 bugs in TNOS/Linux that was inherited from previous unix coders.
  377.   When completing a shell command, there WAS a "zombie" process that would
  378.   hang around until tnos died. Also, the Command Session screen was NOT
  379.   being restored when coming back from the shell command. Both of these
  380.   are fixed as of beta 20.
  381.  
  382. - Added a line to the mailbox stats (BBS 'ms' command, Command Session
  383.   'mbox mailstats' command) that tells the number of queued SMTP messages
  384.   waiting to be processed, if there are any. This info is also displayed
  385.   when fingering "bbs" or "stat".
  386.  
  387. - Made an "adjustment" to the dialer code. Up until now, the filename that
  388.   you pass it to use as the dialer script got ran through the rootdircat()
  389.   function, that pre-pended the xNOS root directory. This made the script
  390.   name RELATIVE, and if you passed in a complete pathname, it STILL added
  391.   the root directory to the front. Now the code only calls rootdircat() if
  392.   the first character is NOT "/" or "\".
  393.  
  394. - Fixed a recently discovered TNOS bug that has existed since 1.00. When I
  395.   added the separate callsign for each interface for IP traffic, I seem to
  396.   have missed the ARP code, which was still sending ARP requests out with
  397.   the AX25 call, NOT the IP call. This caused some occasional auto-routing
  398.   woes. Now the ARP code sends from the IP call sign.
  399.  
  400. - Added a new smtp feature for rewriting "from" addresses. This uses a
  401.   spool/translat file, which is similar to the rewrite file, except that
  402.   the original senders address is changed. The format of the translat file
  403.   is "fromname newfromname". If the file doesn't exist, then the address
  404.   remains unchanged.
  405.  
  406.   You might already be asking "WHY!" (or be dialing 1-800-KILL-KO4KS). Let
  407.   me give you two different VALID uses to rewrite the from, especially at
  408.   a gateway.
  409.  
  410.   1) I run a Linux system, with TNOS/Linux running on the same machine. For
  411.   some DUMB reason, I prefer using a REAL mail program than the BBS mailer.
  412.   On the Linux system, I am "brian@lantz.com". I want to respond to mail,
  413.   sent from regular PBBS, which has been forwarded to my "brian" account.
  414.   BUT I want it to be FROM "ko4ks@ko4ks.ampr.org". This addresses that need.
  415.  
  416.   2) A gateway can provide Internet addresses now, and the mail can even
  417.   be forwarded to other non-IP BBSs, if that is desired. BUT if the user
  418.   sends mail, it MUST be sent from an IP BBS that is known from the Internet.
  419.   With translate, the user can send from a non-IP home BBS (if arrangments
  420.   have been made with the IP sysop), and have that mail TRANSLATED to look
  421.   like it was coming from the Internet-known IP BBS. That sysop COULD set
  422.   up a forward.bbs entry for that user that rewrites the TO address to the
  423.   one expected by the non-IP BBS, and voila! Two way Internet traffic with
  424.   a non-IP endpoint.
  425.  
  426.   A warped mind, you say! You don't know the half of it ;-)
  427.  
  428. - Added code in main.c to automatically create the spool/mail/control and
  429.   spool/mail/users directories, to make JNOS->TNOS upgrading a little less
  430.   painful.
  431.  
  432. - Changed the expire code for bids and white pages to only expire if new
  433.   entries were added. This MAY cause some entries to remain longer than
  434.   desired, but will remove the performance penalty if frequent passes are
  435.   made.
  436.  
  437.  
  438. NEW TO 1.0b43......
  439.  
  440. - fixed a bug with the mailfor "# of messages" line, with the number in
  441.   conference being displayed wrong.
  442.  
  443. - fixed the command session "rdate" help message.
  444.  
  445. - added a 'ping' command to the BBS and fixed ping for remote sysop usage
  446.  
  447. - added 'domain query' and 'domain ?' commands
  448.  
  449. - fixed FTPUSERS permission bug
  450.  
  451. - cleaned up minor bugs in REQSVR and GROUPS
  452.  
  453. - added code to make nntp-style area names work transparently, including
  454.   support for control files.
  455.  
  456. - changed the VERSION command to read a text file (created by a new command,
  457.   MKVERS.EXE) instead of reading the data from program memory.
  458.  
  459. - added a "quick kludge" to give subscription information to the REQSVR
  460.   group subscription. Will come back and re-do this later.
  461.  
  462. - added original message in body of a REQSVR GROUP INFORM message
  463.  
  464. - fixed bug in BBS that required IHEard instead of IHeard
  465.  
  466. - added a BBS "version" command, which yeilds the same results as the Command
  467.   Session "version" command
  468.  
  469. - fixed a bug which made public BBS areas "sometimes" remember an incorrect
  470.   last message number. This was caused by parsing for the "idAAxxx" string
  471.   but not taking ONLY the first one.
  472.  
  473. - Added code to the BBS "list" command to parse off leading spaces in the
  474.   Subject field
  475.  
  476. - Added logging of each FTP connect request to a SPOOL/ftp.log file
  477.  
  478. - Added a "mbox logging on|off" Command Session function to allow/deny
  479.   logging of each MBOX connect request to a SPOOL/mbox.log file
  480.  
  481. - Modified finger "@host" to also tell of built-in finger names
  482.  
  483. - Modified to eliminate telnet permission check for QUOTE, CALLBOOK and
  484.   FINGER service from the BBS
  485.  
  486. - Many assorted bugs squashed
  487.  
  488. - Added a confirmation prompt when you give the "exit" command from the
  489.   Command Session.
  490.  
  491.  
  492. NEW TO 1.0b42......
  493.  
  494. - fixed a long-standing bug where a received BBS BID was being converted to
  495.   lower case (along with the rest of the command line. It seems that the
  496.   BBS spec converts the command line to upper case, including the BID.
  497.   BIDs are now kept in uppercase.
  498.  
  499. - changed the POP3 client to pass to SMTP one message at a time. Previously
  500.   all messages were received, deleted, and THEN passed to SMTP. If an error
  501.   occurred, it was too late... The messages were already deleted.
  502.  
  503. - modified the display for the command session "mbox mailstats" (which is
  504.   the same as the BBS "MS" command. Now includes heapsize, available, etc.
  505.   for the memory section.
  506.  
  507. - modified BUILDCTL.EXE to delete any '.ctl' files that do not have a
  508.   coresponding '.txt' file. This is primarily for use with PCELM.
  509.  
  510. - added to the Conference Bridge a "/join groupname" command, which changes
  511.   to channel of group 'groupname', or creates a new 'group' channel. Added
  512.   to the Conference Bridge entry messages the count of how many are in the
  513.   conference bridge and how many groups are active. Also added a "/groups"
  514.   command, which lists all named groups and nets.
  515.  
  516. - changed grammer of "for a total is" to "for a total of" in Conference
  517.   Bridge "ROLL" command.
  518.  
  519. - converted the internal representation of the MID to upper case for less
  520.   confusion to the AX25 BBSer at two places.
  521.  
  522. - changed the lookup of bids and white pages to use a binary file search
  523.   algorithm. Much faster. Now the "HISTORY", "WPAGES", and "WPAGEBBS" files
  524.   are kept in sorted order. This sorting is done when the "OLDBID/OLDWPAGES"
  525.   command is executed.
  526.  
  527.   All new entries for either of these three files are kept in a file with
  528.   the same name and a suffix of ".new". These new entries are merged as a
  529.   part of the "OLDBID/OLDWPAGES" command.
  530.  
  531. - changed the algorithm to fix the 'disappearing USERS.DAT file' bug in
  532.   case of a file open error.
  533.  
  534. - changed the time base of the OLDBID and OLDWPAGES commands. The second
  535.   parameter, which WAS the number of hours between clean-ups, is NOW the
  536.   number of MINUTES between clean-ups.
  537.  
  538. - and also changed the OLDBID/OLDWPAGES commands to have sub-commands and
  539.   operate more consistantly with other TNOS commands. OLDBID is now BID.
  540.   OLDWPAGES is now WPAGES. Each of these has three sub-commands: AGE, KICK,
  541.   and TIMER.
  542.  
  543. - added to the mailfor "# of messages" line, the number in conference
  544.  
  545.  
  546. NEW TO 1.0b41......
  547.  
  548. - fixed a bug when using the SF BBS command. Dup bid was being wrongly
  549.   found.
  550.  
  551. - modified BUILDCTL.EXE to allow easy usage of PCELM 3.1 with TNOS's message
  552.   control files. If you are using PCELM, use the enclosed MAIL.BAT to
  553.   execute PCELM, and your control files will always be in sync. Change the
  554.   directory on the BUILDCTL line to reflect your TNOS root directory.
  555.   PCELM 3.1 should be available from the same source that you received
  556.   TNOS from.
  557.  
  558. - fixed a memory buffer overflow error with POP and long data lines.
  559.  
  560.  
  561. NEW TO 1.0b40......
  562.  
  563. - made oldbid and oldwpages into separate processes
  564.  
  565.  
  566. NEW TO 1.0b39......
  567.  
  568. - changed version number style from 1.0.39b to 1.0b39 in preparation for
  569.   release version 1.0. Format is VV.RRDLL, where VV=version number,
  570.   RR=release number, D=development stage (d=development, a=alpha, b=beta,
  571.   r=release) and LL=development level. If no "DLL" given, the default is
  572.   "r00".
  573.  
  574. - If expanding an mail group, we now strip off received R: lines, since this
  575.   is now a NEW message being generated.
  576.  
  577. - fixed return receipt RFC line in relation to data RFC lines
  578.  
  579. - fixed rmail 'To:' RFC line in relation to data RFC lines
  580.  
  581. - added mail group RFC line in data RFC lines
  582.  
  583. - made cosmetic display changes in the BBS commands "ML" and "WP"
  584.  
  585. - fixed a bug that put a blank line after the MessageID line on messages
  586.   with custom bids
  587.  
  588. - tested and modified POP2 and POP3 client and server code to permit
  589.   proper handling of TNOS control files.
  590.  
  591. - Added the number of active messages to the MAILFOR broadcasts
  592.  
  593. - reverted back to previous alias/group expansion (changed in 1.0.38b)
  594.   since this was not found to be necessary. Setting "SMTP GATEWAY yourhostname"
  595.   causes all unknown hosts to be handled locally.
  596.  
  597. - fixed bug with over-zealous white pages expansion. Now the white pages
  598.   lookup checks first to see if the name has a standard IP suffix, if found
  599.   it's a hostname. If not, it attempts to resolve the name. If it doesn't
  600.   resolve, then it is assumed to be a AX25 BBS user, and white pages
  601.   expansion takes place. To ensure that a user's mail goes out SMTP, either
  602.   use "user@host.ampr.org", or place entries in your rewrite to rewrite
  603.   to this format. To ensure that a IP user's mail DOESN'T go out SMTP,
  604.   add a line to the rewrite file like "user@host* user".
  605.  
  606.  
  607. NEW TO 1.0.38b......
  608.  
  609. - SAM callbook support directly, through the Request Server and through finger.
  610.   If the callbook server is located locally, then the conference bridge
  611.   can also access it with the /CALL command.
  612.  
  613. - Now marks as invalid a MID stored in the history file for a personal
  614.   message that has been forwarded off the system. This allows it to be
  615.   able to come back on (no matching bid, now) if it needs to be.
  616.  
  617. - Fixed bugs with the Request Server and the Information Server.
  618.  
  619. - Moved logging of White Pages BBSs from the BBS send routine to the SMTP
  620.   server.
  621.  
  622. - Added in outbound forwarding sessions checking for a session being
  623.   'bumped'.
  624.  
  625. - Fixed a bug with alias/group name expansion that occurred if the expanded
  626.   name was in the form of "user@dest". Previously this was treated as an
  627.   IP hostname, even when it was a AX25 BBS. Now the name is searched for
  628.   a standard IP suffix, if found it's a hostname. If not, it attempts to
  629.   resolve the name. If it doesn't resolve, then it is treated as a BBS
  630.   hier address.
  631.  
  632. - Added the BBS user's realname, with auto-fetching from SAM database, if
  633.   it is located locally. The realname is placed in the message headers.
  634.  
  635. - Added BBS "NAME" command to allow user to change his realname.
  636.  
  637. - Added RFC headers to the body of locally generated messages.
  638.  
  639. - Fixed bug that would allow a MID to be sent, even when the receiving
  640.   system doesn't support MIDS.
  641.  
  642. - Fixed bug which made messages with no "@addr" forward out as "user@user".
  643.  
  644. - Fixed bug which stripped out blank lines from all forwarded messages.
  645.  
  646.  
  647. NEW TO 1.0.37b......
  648.  
  649. - Added a "mbox rstyle" command, to allow the use of "W0RLI-style", short R:
  650.   lines. Modified MID to meet proposed spec, i.e. numbers in range of 1-65535.
  651.   Also, made MID numbers separate from sequence numbers.
  652.  
  653. - Added to the BBS SYSOP "bump" command the equivilent of the command session
  654.   command "mbox zap user" with the bbs command "bump user now".
  655.  
  656. - Added two new commands to the information server script language, one to
  657.   allow calling a script from within a script, the other to search for a
  658.   substring within another string.
  659.  
  660. - Added a Command session "script" command, to directly call an Information
  661.   Server Script file from the Command Session.
  662.  
  663. - Added four other commands to the information server script language to
  664.   support connect/disconnects from within a script.
  665.  
  666. - convers maxq code added; you can now set limits for users and hosts with
  667.   'convers umaxq' and 'convers hmaxq' . If set to 0, there is no limit,
  668.   otherwise connections will be reset if there is more then the maxq value
  669.   data outstanding on the connection. This should now also reset connections,
  670.   instead of the previous graceful close...
  671.  
  672. - 'convers allow' is now replaced with 'convers filter'
  673.   'convers filter mode [accept|refuse]' shows or sets the mode (default refuse)
  674.   'convers filter [ipaddress|hostname]' add an ip address to the filter
  675.   table.
  676.   If filter mode is refuse, then convers links from hosts in the list will
  677.   be refused. If filter mode is accept, then only links from hosts in the
  678.   list will be accepted.
  679.  
  680. - mailbox 'K', 'KU', 'MH', 'MT' and 'MP' commands now work on the current
  681.   message if no message list is given.
  682.  
  683. - Mailbox K/KU/MH/MA/MT/MP commands allow message ranges... Eg: 'K 1-4'
  684.  
  685. - ax.25 resets will send a disconnect to be polite.
  686.  
  687. - expire process is prevented against multiple invocations.
  688.  
  689. - Bulletins with NO BID can be refused if 'mbox nobid off'
  690.   off means refuse them, on means accept. Default is OFF, ie refuse !
  691.  
  692. - several system errors and permission infringements will now send
  693.   a message to the user 'sysop'.
  694.   This is controlled with 'error [on|off]'. Default is on.
  695.  
  696. - Monitor Trace mode added. Gives a shorter, easier trace display.
  697.   'trace <iface> 3xy' sets this, where x=1 sets input, y=1 sets output
  698.  
  699. - Added a command session 'time' command.
  700.  
  701. - The 'at' command now works properly.
  702.  
  703. - ftp server has additional information possibilities:
  704.   if a file 'message.ftp' exists in the initial directory (eg. /public, or
  705.   whatever), it will be send right after the login.
  706.   When CD-ing, if a file 'desc.ftp' exists in the new directory, the
  707.   server will send the text in this file to the user...
  708.  
  709. - 'repeat [interval in ms] command
  710.   Starts a new session screen with the output of the command updated
  711.   every interval ms. If you hit F10 it ends the session.
  712.   Eg: repeat 1000 t s
  713.   (repeat every second 'tcp status' command)
  714.  
  715. - small problem with non ampr.org. domain names fixed.
  716.  
  717. - Interface names are now case insensitive
  718.  
  719. - 'mem efficient' command deleted, since it has been totally
  720.   useless for "eons" :)
  721.  
  722. - 'domain addserver' has optional timeout value in seconds for this server.
  723.   if not set, timeout defaults to 3 * tcp irtt.
  724.   Eg: 'domain addserver wg7j.ece.orst.edu 30'
  725.  
  726. - 'domain startdns' is gone. Domain Name Server can be turned on and off,
  727.   with 'domain dns [on|off]'
  728.  
  729. - new domain commands, "domain cache dump", "domain subnet", "domain ttl",
  730.   and "domain update"
  731.  
  732. - fixed an apparently long-standing white pages bug, and added code to
  733.   eliminate check the white pages twice for BBS generated messages (once
  734.   in the 'send' command, once in the SMTP server.
  735.  
  736.   Now, white pages are NOT looked up if message is a bulletin, otherwise
  737.   they are checked immediately following the "SP/SB/etc" command line.
  738.   SMTP only looks up white pages if (1) an alias is being expanded, (2)
  739.   a group is being expanded, or (3) the message was NOT created in the
  740.   BBS (if it came onto this system via SMTP).
  741.  
  742. - fixed color operation for users with BBS permissions who log in
  743.   interactively.
  744.  
  745. - added to the BBS 'get' command the ability to issue the command without
  746.   parameters, which will give a summary of the user's profile settings.
  747.  
  748.  
  749. NEW TO 1.0.36b......
  750.  
  751. There are M-A-N-Y bugfixes, too many to list!
  752.  
  753. There is now color support in the BBS (set g) and conference bridge (/color).
  754. These are defeated by TNOS (sorry) if you are using a split screen session.
  755. This will be fixed soon.
  756.  
  757.    If color is desired in the Conference Bridge and you are running TNOS
  758.    locally, you must "TELNET host 3600", rather than "CONFERENCE host". This
  759.    places you in telnet mode, not in ttylink mode.
  760.  
  761.    You also have to do a "/na yourname" upon entry to the conference before
  762.    you are a part of anything.
  763.  
  764.    For color in BBS sessions, use the "connect" command, not the "split"
  765.    command.
  766.  
  767. The Conference Bridge has four new commands, /roll, /cut, /news, and /smiley.
  768.  
  769. The BBS MA command now will allow zero parameters, which will release ALL
  770. held messages in the current area.
  771.  
  772. There is now a LH command in the BBS to list all HELD messages (SYSOPS, only).
  773.  
  774. There is a FORWARD command session command, which sets BBS forwarding options.
  775.  
  776. FTP will now corectly send the "spool/ftpmotd", if it exists.
  777.  
  778. MD5 support, which is a very elaborate CRC scheme, using a 16 byte value.
  779.  
  780. FTP has several new commands:
  781.      RENAME     to rename remote file.
  782.      LRENAME    to rename local file.
  783.      MD5        to MD5 remote file.
  784.      COMPARE    compares (with MD5) remote and local file
  785.      MCOMPARE   compares (with MD5) remote and local files
  786.      UPDATE     sets flag to first check with COMPARE before using the
  787.                 get, mget, put, or mput commands.
  788.  
  789. You now get different data from the 'help" and the "?" commands in the command
  790. session, BBS, FTP, and Conference Bridge. The "help" command gives details,
  791. the "?" command gives a short summary of available commands. 
  792.  
  793. Changed the BBS forwarding algorithm to start at beginning of the *.fwd file
  794. if a new message has been queued for forwarding. This happens at the end of
  795. processing the current area.
  796.  
  797. The passwords in the ftpusers file are now MD5-encoded. This is done/checked
  798. automatically on startup. To change a password, replace the MD5-encoded
  799. password with the word desired, and re-start.
  800.  
  801. The statusline flutter has been reduced.
  802.  
  803. Added a MBOX BUMP and MBOX ZAP command.
  804.  
  805. If a user goes to send a message that the system doesn't know how to route
  806. (one that's going to the 'check' area), the user is warned of the problem,
  807. and the suggestion is made that the user probably should abort the message
  808. and re-enter the address.
  809.  
  810. Added the RLOGIN client and server. After password validation, you are
  811. placed in remote-sysop mode.
  812.  
  813. The BBS now send the 'I' flag in the SID, showing that it can accept lines
  814. for self-identification purposes. These ID lines are lines beginning with
  815. ';' in place of commands.
  816.  
  817. When reading BBS messages (regularly, not with the 'v' command), the user
  818. is now given a "Message ID:" line, with the "traditional BBS" MID/BID.
  819. The internal format remains the same.
  820.  
  821. Should now have a "clean" disconnect for all BBSs after a forwarding session.
  822.  
  823.  
  824. * When you are in split-screen (chat-type) TTYLINK sessions, the "local"
  825.   window (the last 2 lines) are now displayed in the reverse colorset
  826.   (like the status line).
  827.  
  828. * The "color" command has been expanded. The previous syntax works the same
  829.   as before ("color background foreground), and changes the color of the
  830.   Command Session. All new sessions inherit the colorset of the Command
  831.   Session.
  832.  
  833.   This has been expanded with an additional optional parameter, "session#".
  834.   Placing a session number on the color line sets the colorset of the given
  835.   numbered session, and leaves the Command Session alone. The contents of the
  836.   session's screen are changed to the NEW colorset, including any highlighted
  837.   characters!
  838.  
  839. * A Command Session command has been added, "prompt [hostname | dirname]".
  840.   The default is "hostname", which works as it previously did. Changing it
  841.   to "prompt dirname" will make the Command Session prompt the DOS drive and
  842.   current directory name. This is very similar to most people's DOS prompt,
  843.   except that the TNOS prompt will be in lower case and the "\"s are changed
  844.   to "/"s. This makes it easier to tell at a glance whether you are in DOS
  845.   or TNOS.
  846.  
  847. * The biggest changes come in pre-defined fkeys. The following are the
  848.   actions for the specified keys ONLY is you have NOT re-defined them with
  849.   the "fkey" command. You have the ultimate control!! Those marked with a "@"
  850.   were already in there prior to 21b, but are listed here for the record.
  851.  
  852.    @ INSERT - toggles the current session's status line state on/off
  853.      DELETE - toggles the current session's flow control state on/off
  854.      HOME   - "kick"s the current session
  855.      END    - ends the current session ("reset")
  856.      PGUP   - toggles to the next lowest numbered session (not the Command
  857.               Session or the Trace Session). Wraps around to the last session
  858.      PGDN   - toggles to the next highest numbered session (not the Command
  859.               Session or the Trace Session). Wraps around to the first session
  860.    @ F9     - toggles to/from the Trace Session
  861.    @ F10    - toggles to the Command Session
  862.    @ F1-F8  - toggles to the numbered session (if it exists). F2 goes to
  863.               session #2, etc.
  864.  
  865.      ^B     - places last executed line into the input buffer
  866.      ^R     - reprints the current line
  867.      ^W     - erase last word in current line (including preceeding space)
  868.      ^X     - delete entire current line
  869.  
  870.   Also, the PAUSE and PRINTSCREEN keys respond like they do in DOS
  871.  
  872.  
  873. AND MUCH MORE, that I'm sure I have forgotten.......
  874. Get in there, look around, and have fun!
  875.  
  876.  
  877. Brian A. Lantz/KO4KS
  878.